Saltar al contenido principal

Convenciones de Commits y Versionado

Este documento define cómo escribimos los mensajes de commit y cómo versionamos el proyecto.

Formato del commit

<tipo>: <descripción en inglés>
  • El tipo indica la naturaleza del cambio.
  • Después del tipo va : seguido de un espacio.
  • La descripción va en inglés, en modo imperativo y en minúscula (ej. add, fix, update, no added / Added).

Ejemplos

feat: add user login with WhatsApp OTP
fix: correct total calculation in cart summary
style: adjust spacing on product card
hotfix: patch broken payment webhook in production

Tipos permitidos

TipoCuándo se usa
featNueva funcionalidad o característica visible para el usuario.
fixCorrección de un bug detectado durante el desarrollo.
styleCambios de estilo/formato que no afectan la lógica (CSS, espaciado, orden de imports, formato de código).
hotfixCorrección urgente aplicada directamente sobre producción.

Versionado

Cuando sale una nueva versión de lo trabajado, subimos la versión con npm version:

npm version patch # 1.0.0 -> 1.0.1
npm version minor # 1.0.1 -> 1.1.0
npm version major # 1.1.0 -> 2.0.0

Criterio para elegir el incremento

ComandoSe usa cuando...
npm version patchSolo hubo correcciones (fix, hotfix) o ajustes de estilo (style) sin cambios en funcionalidad.
npm version minorSe agregó nueva funcionalidad (feat) compatible con lo anterior (sin romper nada existente).
npm version majorHay cambios que rompen compatibilidad (breaking changes).

npm version actualiza el campo version en package.json y crea automáticamente un commit y un tag de git con la nueva versión.

Flujo resumido

  1. Trabajas en el cambio y haces commits usando el formato <tipo>: <descripción en inglés>.
  2. Cuando la versión está lista para publicarse, corres el npm version correspondiente según el criterio de arriba.
  3. Se genera el tag de versión y se sube junto con los cambios.